/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author root
 */
@Entity
@Table(name = "control_ropa_blanca_recibida")
@NamedQueries({
    @NamedQuery(name = "ControlRopaBlancaRecibida.findAll", query = "SELECT c FROM ControlRopaBlancaRecibida c"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByAll", query = "SELECT c FROM ControlRopaBlancaRecibida c "
    + "WHERE c.ropaBlanca = :ropaBlanca AND c.cantidadRecibida = :cantidadRecibida AND c.fechaRecepcion = :fechaRecepcion "
    + "AND c.encargadoMovimiento = :encargadoMovimiento AND c.proveedor = :proveedor"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByIdControlRopaBlancaRecibida", query = "SELECT c FROM ControlRopaBlancaRecibida c WHERE c.idControlRopaBlancaRecibida = :idControlRopaBlancaRecibida"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByCantidadRecibida", query = "SELECT c FROM ControlRopaBlancaRecibida c WHERE c.cantidadRecibida = :cantidadRecibida"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByFechaRecepcion", query = "SELECT c FROM ControlRopaBlancaRecibida c WHERE c.fechaRecepcion = :fechaRecepcion"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByEncargadoMovimiento", query = "SELECT c FROM ControlRopaBlancaRecibida c WHERE c.encargadoMovimiento = :encargadoMovimiento"),
    @NamedQuery(name = "ControlRopaBlancaRecibida.findByProveedor", query = "SELECT c FROM ControlRopaBlancaRecibida c WHERE c.proveedor = :proveedor")})
public class ControlRopaBlancaRecibida implements Serializable {

    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idControlRopaBlancaRecibida")
    private Integer idControlRopaBlancaRecibida;
    @Basic(optional = false)
    @Column(name = "cantidadRecibida")
    private int cantidadRecibida;
    @Basic(optional = false)
    @Column(name = "fechaRecepcion")
    @Temporal(TemporalType.DATE)
    private Date fechaRecepcion;
    @Basic(optional = false)
    @Column(name = "encargadoMovimiento")
    private String encargadoMovimiento;
    @Basic(optional = false)
    @Column(name = "proveedor")
    private String proveedor;
    @JoinColumn(name = "ropaBlanca", referencedColumnName = "idRopa")
    @ManyToOne(optional = false)
    private RopaBlanca ropaBlanca;

    public ControlRopaBlancaRecibida() {
    }

    public ControlRopaBlancaRecibida(Integer idControlRopaBlancaRecibida) {
        this.idControlRopaBlancaRecibida = idControlRopaBlancaRecibida;
    }

    public ControlRopaBlancaRecibida(Integer idControlRopaBlancaRecibida, int cantidadRecibida, Date fechaRecepcion, String encargadoMovimiento, String proveedor) {
        this.idControlRopaBlancaRecibida = idControlRopaBlancaRecibida;
        this.cantidadRecibida = cantidadRecibida;
        this.fechaRecepcion = fechaRecepcion;
        this.encargadoMovimiento = encargadoMovimiento;
        this.proveedor = proveedor;
    }

    public Integer getIdControlRopaBlancaRecibida() {
        return idControlRopaBlancaRecibida;
    }

    public void setIdControlRopaBlancaRecibida(Integer idControlRopaBlancaRecibida) {
        Integer oldIdControlRopaBlancaRecibida = this.idControlRopaBlancaRecibida;
        this.idControlRopaBlancaRecibida = idControlRopaBlancaRecibida;
        changeSupport.firePropertyChange("idControlRopaBlancaRecibida", oldIdControlRopaBlancaRecibida, idControlRopaBlancaRecibida);
    }

    public int getCantidadRecibida() {
        return cantidadRecibida;
    }

    public void setCantidadRecibida(int cantidadRecibida) {
        int oldCantidadRecibida = this.cantidadRecibida;
        this.cantidadRecibida = cantidadRecibida;
        changeSupport.firePropertyChange("cantidadRecibida", oldCantidadRecibida, cantidadRecibida);
    }

    public Date getFechaRecepcion() {
        return fechaRecepcion;
    }

    public void setFechaRecepcion(Date fechaRecepcion) {
        Date oldFechaRecepcion = this.fechaRecepcion;
        this.fechaRecepcion = fechaRecepcion;
        changeSupport.firePropertyChange("fechaRecepcion", oldFechaRecepcion, fechaRecepcion);
    }

    public String getEncargadoMovimiento() {
        return encargadoMovimiento;
    }

    public void setEncargadoMovimiento(String encargadoMovimiento) {
        String oldEncargadoMovimiento = this.encargadoMovimiento;
        this.encargadoMovimiento = encargadoMovimiento;
        changeSupport.firePropertyChange("encargadoMovimiento", oldEncargadoMovimiento, encargadoMovimiento);
    }

    public String getProveedor() {
        return proveedor;
    }

    public void setProveedor(String proveedor) {
        String oldProveedor = this.proveedor;
        this.proveedor = proveedor;
        changeSupport.firePropertyChange("proveedor", oldProveedor, proveedor);
    }

    public RopaBlanca getRopaBlanca() {
        return ropaBlanca;
    }

    public void setRopaBlanca(RopaBlanca ropaBlanca) {
        RopaBlanca oldRopaBlanca = this.ropaBlanca;
        this.ropaBlanca = ropaBlanca;
        changeSupport.firePropertyChange("ropaBlanca", oldRopaBlanca, ropaBlanca);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idControlRopaBlancaRecibida != null ? idControlRopaBlancaRecibida.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ControlRopaBlancaRecibida)) {
            return false;
        }
        ControlRopaBlancaRecibida other = (ControlRopaBlancaRecibida) object;
        if ((this.idControlRopaBlancaRecibida == null && other.idControlRopaBlancaRecibida != null) || (this.idControlRopaBlancaRecibida != null && !this.idControlRopaBlancaRecibida.equals(other.idControlRopaBlancaRecibida))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.ControlRopaBlancaRecibida[ idControlRopaBlancaRecibida=" + idControlRopaBlancaRecibida + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
}
